iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 12
0
AI & Data

作者超囉嗦,但一天只要十分鐘的MYSQL真.新手教學系列 第 12

第十二日-資料篩選趴三:BETWEEN 、LIKE與NULL

  • 分享至 

  • xImage
  •  

語法的超生活應用(咦)
BETWEEN:「我想調早上九點到十二點的監視器!」by 憤怒的被偷光全家的民宅主人
LIKE:「你幫我找那個什麼什麼節目!就是那個綜藝什麼熱門的,啊我不記得名字了啦!」by 要求你幫他找綜藝節目可是又不記得節目名字的老媽
NULL:「把有沒有打卡紀錄的員工通通找出來(拍桌)!」by 想要縮編人力的腦闆

資料篩選趴三,是基礎的最後一趴,
我們來想辦法應付上面這些奇怪人士的需求,
之後還會介紹比較進階一點的子查詢,
條件篩選的水很深吶吶吶,
上面例子看不懂沒關係,可以學完再來回頭看!
今天要介紹的是BETWEEN、LIKE與NULL,
一樣用我們的student資料當範例,
直接開始講解,GOGO!

  • BETWEEN 條件一 AND 條件二

BETWEEN 算是比較好理解,就是在......期間,
或是在......之間,常常常用在篩選時間或數字,
用法是BETWEEN 條件一 AND 條件二,
選出來的資料會包含條件一和條件二喔!

  • 篩選時間

    選出在2019年暑假報名的學生

    SELECT * FROM Education.student WHERE start_date between '2019/07/01' AND '2019/08/31';
    
    
  • 篩選數字

    選出第6個到第10個報名的學生

    SELECT * FROM Education.student WHERE id between 6 AND 10;
    
  • LIKE 搭配 %

LIKE就是「像」,%是萬用字元,
例如下面的語法就是找到名字長的像'J%'的學生,
'J%'的意思是J開頭,後面隨便什麼字都沒關係,
只要長的像JXXXX的,都可以接受!

SELECT * FROM Education.student WHERE full_name like 'J%';

'%y'就是什麼開頭無所謂,要用y結尾就對了。

SELECT * FROM Education.student WHERE full_name like '%y';

'%e%'就是前面後面都不重要,中間一定要有個e。

SELECT * FROM Education.student WHERE full_name like '%e%';
  • NULL

NULL就是NULL,NULL不是空。
NULL是尚未有值,是沒有設定,
空值是'',是欄位裡面裝空白,
如果今天要撈空白欄位,
我們會where 欄位=''。

如果要撈尚未設定的欄位,
就會用WHERE 欄位IS NULL,
反之,則是用WHERE 欄位IS NOT NULL。

還記得我們創建student表的時候,
class那欄都沒有填東西?
這代表每個學生的class都沒設定過,
我們用IS NULL和IS NOT NULL選看看。

SELECT * FROM Education.student WHERE class IS NOT NULL;
SELECT * FROM Education.student WHERE class IS NULL;

上一篇
第十一日-資料篩選趴兔:AND和OR,邏輯運算子大混戰
下一篇
第十三日-資料表建錯怎麼辦?別急,先學怎麼新增和刪除欄位
系列文
作者超囉嗦,但一天只要十分鐘的MYSQL真.新手教學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言